<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
<!-- qiconengineplugin.cpp -->
  <title>QIconEnginePlugin Class | Qt GUI 5.14.2</title>
  <link rel="stylesheet" type="text/css" href="style/offline-simple.css" />
  <script type="text/javascript">
    document.getElementsByTagName("link").item(0).setAttribute("href", "style/offline.css");
    // loading style sheet breaks anchors that were jumped to before
    // so force jumping to anchor again
    setTimeout(function() {
        var anchor = location.hash;
        // need to jump to different anchor first (e.g. none)
        location.hash = "#";
        setTimeout(function() {
            location.hash = anchor;
        }, 0);
    }, 0);
  </script>
</head>
<body>
<div class="header" id="qtdocheader">
  <div class="main">
    <div class="main-rounded">
      <div class="navigationbar">
        <table><tr>
<td ><a href="../qtdoc/index.html">Qt 5.14</a></td><td ><a href="qtgui-index.html">Qt GUI</a></td><td ><a href="qtgui-module.html">C++ Classes</a></td><td >QIconEnginePlugin</td></tr></table><table class="buildversion"><tr>
<td id="buildversion" width="100%" align="right"><a href="qtgui-index.html">Qt 5.14.2 Reference Documentation</a></td>
        </tr></table>
      </div>
    </div>
<div class="content">
<div class="line">
<div class="content mainContent">
<div class="sidebar">
<div class="toc">
<h3><a name="toc">Contents</a></h3>
<ul>
<li class="level1"><a href="#public-functions">Public Functions</a></li>
<li class="level1"><a href="#details">Detailed Description</a></li>
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
<h1 class="title">QIconEnginePlugin Class</h1>
<!-- $$$QIconEnginePlugin-brief -->
<p>The QIconEnginePlugin class provides an abstract base for custom <a href="qiconengine.html">QIconEngine</a> plugins. <a href="#details">More...</a></p>
<!-- @@@QIconEnginePlugin -->
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> Header:</td><td class="memItemRight bottomAlign">   <span class="preprocessor">#include &lt;QIconEnginePlugin&gt;</span>
</td></tr><tr><td class="memItemLeft rightAlign topAlign"> qmake:</td><td class="memItemRight bottomAlign"> QT += gui</td></tr><tr><td class="memItemLeft rightAlign topAlign"> Inherits:</td><td class="memItemRight bottomAlign"> <a href="../qtcore/qobject.html">QObject</a></td></tr></table></div><ul>
<li><a href="qiconengineplugin-members.html">List of all members, including inherited members</a></li>
</ul>
<a name="public-functions"></a>
<h2 id="public-functions">Public Functions</h2>
<div class="table"><table class="alignedsummary">
<tr><td class="memItemLeft rightAlign topAlign"> </td><td class="memItemRight bottomAlign"><b><a href="qiconengineplugin.html#QIconEnginePlugin">QIconEnginePlugin</a></b>(QObject *<i>parent</i> = nullptr)</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual </td><td class="memItemRight bottomAlign"><b><a href="qiconengineplugin.html#dtor.QIconEnginePlugin">~QIconEnginePlugin</a></b>()</td></tr>
<tr><td class="memItemLeft rightAlign topAlign"> virtual QIconEngine *</td><td class="memItemRight bottomAlign"><b><a href="qiconengineplugin.html#create">create</a></b>(const QString &amp;<i>filename</i> = QString()) = 0</td></tr>
</table></div>
<a name="details"></a>
<!-- $$$QIconEnginePlugin-description -->
<div class="descr">
<h2 id="details">Detailed Description</h2>
<p>The icon engine plugin is a simple plugin interface that makes it easy to create custom icon engines that can be loaded dynamically into applications through <a href="qicon.html">QIcon</a>. <a href="qicon.html">QIcon</a> uses the file or resource name's suffix to determine what icon engine to use.</p>
<p>Writing a icon engine plugin is achieved by subclassing this base class, reimplementing the pure virtual function <a href="qiconengineplugin.html#create">create</a>(), and exporting the class with the <a href="../qtcore/qtplugin.html#Q_PLUGIN_METADATA">Q_PLUGIN_METADATA</a>() macro.</p>
<p>The json metadata should contain a list of icon engine keys that this plugin supports. The keys correspond to the suffix of the file or resource name used when the plugin was created. Keys are case insensitive.</p>
<pre class="cpp">

  { <span class="string">&quot;Keys&quot;</span>: <span class="operator">[</span> <span class="string">&quot;myiconengine&quot;</span> <span class="operator">]</span> }

</pre>
</div>
<p><b>See also </b><a href="../qtdoc/plugins-howto.html">How to Create Qt Plugins</a>.</p>
<!-- @@@QIconEnginePlugin -->
<div class="func">
<h2>Member Function Documentation</h2>
<!-- $$$QIconEnginePlugin[overload1]$$$QIconEnginePluginQObject* -->
<h3 class="fn" id="QIconEnginePlugin"><a name="QIconEnginePlugin"></a>QIconEnginePlugin::<span class="name">QIconEnginePlugin</span>(<span class="type"><a href="../qtcore/qobject.html#QObject">QObject</a></span> *<i>parent</i> = nullptr)</h3>
<p>Constructs a icon engine plugin with the given <i>parent</i>. This is invoked automatically by the plugin loader.</p>
<!-- @@@QIconEnginePlugin -->
<!-- $$$~QIconEnginePlugin[overload1]$$$~QIconEnginePlugin -->
<h3 class="fn" id="dtor.QIconEnginePlugin"><a name="dtor.QIconEnginePlugin"></a><code>[virtual] </code>QIconEnginePlugin::<span class="name">~QIconEnginePlugin</span>()</h3>
<p>Destroys the icon engine plugin.</p>
<p>You never have to call this explicitly. Qt destroys a plugin automatically when it is no longer used.</p>
<!-- @@@~QIconEnginePlugin -->
<!-- $$$create[overload1]$$$createconstQString& -->
<h3 class="fn" id="create"><a name="create"></a><code>[pure virtual] </code><span class="type"><a href="qiconengine.html">QIconEngine</a></span> *QIconEnginePlugin::<span class="name">create</span>(const <span class="type"><a href="../qtcore/qstring.html">QString</a></span> &amp;<i>filename</i> = QString())</h3>
<p>Creates and returns a <a href="qiconengine.html">QIconEngine</a> object for the icon with the given <i>filename</i>.</p>
<!-- @@@create -->
</div>
        </div>
       </div>
   </div>
   </div>
</div>
<div class="footer">
   <p>
   <acronym title="Copyright">&copy;</acronym> 2020 The Qt Company Ltd.
   Documentation contributions included herein are the copyrights of
   their respective owners.<br/>    The documentation provided herein is licensed under the terms of the    <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation    License version 1.3</a> as published by the Free Software Foundation.<br/>    Qt and respective logos are trademarks of The Qt Company Ltd.     in Finland and/or other countries worldwide. All other trademarks are property
   of their respective owners. </p>
</div>
</body>
</html>
